@时光机
2年前 提问
1个回答

云架构对运维管理的四大挑战是什么

上官雨宝
2年前

云架构对运维管理的四大挑战如下:

  • 规模大:对云平台运维人员而言,云平台的资源池体量巨大,因此必然要面对大规模管理的挑战。管理10台机器和10万台机器是完全不同的概念,以安全补丁为例,一旦发现必须快速修复,否则可能面临数据丢失、平台崩溃的风险,运维必须争分夺秒保障平台安全。如果只有数十台机器,手动操作可以在很短时间内完成,而对于10万级别的规模,极易引发安全事故。因此,在大规模的场景下运维,效率显得尤为重要。

  • 分布广:为了提升用户体验,就近提供服务是很多业务的需求,CDN技术正是在这种场景下诞生的。云平台承载着各种服务,不可避免地需要在全球范围部署资源,这导致管理对象的物理分布非常广。全球化部署的场景下,不同时区的业务高峰期也会不同,不能像传统环境有固定的变更窗口执行操作,而运维操作必须做到对用户无感知,因此对运维管理也就提出更高的要求。这种广泛分布也导致运维需要的各种数据散落在各数据中心,集中管理变得非常困难。

  • 技术多:构建一个云平台涉及大量技术,在网络、计算、存储虚拟化的基础上,每个领域都需要专业的团队去实现,其中涉及大量细分技术。以网络技术为例,为了实现虚拟机的迁移不受物理位置的限制,需要在传统Underlay网络上叠加Overlay网络,衍生出Network Overlay、Host Overlay、Hybrid Overlay等方案;为解决VLAN规模限制引入VXLAN,为隔离租户资源又涉及VPC、VRF、Iptables、NAT等技术;控制层面和数据层面分离又需要OVS、OpenFlow等技术支撑;Container技术的发展又将Flannel、Calico等网络方案呈现在我们眼前,各种Tunnel技术、路由协议、XoverX等名词让人眼花缭乱。云平台建设涉及多个团队协作,不同团队可能选用不同的技术栈,底层出于性能要求可能偏向于使用C/C++/Rust,业务层出于开发效率可能会选择Java/Go/Python,前端出于灵活展现以及兼容性要求会基于JavaScript/TypeScript的各种衍生框架开发,部署形态从虚拟机到容器、无服务器架构设计从单体到微服务、服务网络等,编排技术从几家争鸣到Kubernetes成为事实标准,数据库从RDBMS到NoSQL再到NewSQL。各种新技术层出不穷,融于云平台系统之中,复杂度让人望而生畏。

  • 影响大:共享资源是云平台与生俱来的特点,其优势是可以最大化利用资源,但一旦共享资源出现故障,其影响面大的劣势则暴露无遗,这一点从各云计算提供商的历史故障中也有所体现。虽然在设计之初已经极力考虑最小化影响,但任何系统都不可能100%可靠,运维必须有能力应对这些异常。必须知道一个共享资源的异常会影响哪些用户、影响哪些服务,对影响的级别做出快速评估,快速定位故障点,采取对应的应急恢复措施。